package com.ztf.test.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * 模型响应
 *
 * @author yjsk_lpf
 * @date 2021/06/28
 */
@Data
@ApiModel(description = "模型响应")
public class ModelResponse {

	/**
	 * 状态码 00000为成功，其余为失败
	 */
	@ApiModelProperty(value = "状态码")
	private String code;

	/**
	 * 提示信息
	 */
	@ApiModelProperty(value = "提示信息")
	private String desc;

	/**
	 * 是否有征信信息 (false代表无，true代表有)
	 */
	@ApiModelProperty(value = "是否有征信信息")
	private String haveCreditInfo;

	/**
	 * 准入黑名单结果 1：拒绝，0：通过
	 */
	@ApiModelProperty(value = "准入黑名单结果")
	private String admit001;

	/**
	 * 准入黑名单触发规则
	 */
	@ApiModelProperty(value = "准入黑名单触发规则")
	private Map<String, List<String>> admit001Desc;

	/**
	 * 准入风险审查结果 1：拒绝，0：通过
	 */
	@ApiModelProperty(value = "准入风险审查结果")
	private String admit002;

	/**
	 * 准入风险审查触发规则
	 */
	@ApiModelProperty(value = "准入风险审查触发规则")
	private Map<String, List<String>> admit002Desc;

	/**
	 * 准入合规审查结果 1：拒绝，0：通过
	 */
	@ApiModelProperty(value = "准入合规审查结果")
	private String admit003;

	/**
	 * 准入合规审查触发规则
	 */
	@ApiModelProperty(value = "准入合规审查触发规则")
	private Map<String, List<String>> admit003Desc;

	/**
	 * 准入风险加固结果 1：拒绝，0：通过
	 */
	@ApiModelProperty(value = "准入合规审查结果")
	private String admit004;

	/**
	 * 准入风险加固触发规则
	 */
	@ApiModelProperty(value = "准入风险加固触发规则")
	private Map<String, List<String>> admit004Desc;

	/**
	 * 风险加固规则得分
	 */
	@ApiModelProperty(value = "风险加固规则得分")
	private String admit004Value;

	/**
	 * 拒绝信息 准入风险加固结果
	 */
	@ApiModelProperty(value = "准入风险加固结果")
	private String admit004ResultDesc;

	/**
	 * 评级准入结果
	 */
	@ApiModelProperty(value = "评级准入结果")
	private String admitResult;

	/**
	 * 评级准入触发规则
	 */
	@ApiModelProperty(value = "评级准入结果")
	private Map<String, List<String>> admitResultDesc;

	/**
	 * 额度计算结果列表
	 */
	@ApiModelProperty(value = "额度计算结果列表")
	private Map<String, BigDecimal> limitAmountResults;

	/**
	 * 评分卡结果
	 */
	@ApiModelProperty(value = "评分卡结果")
	private String cardValue;

	/**
	 * 评分卡等级
	 */
	@ApiModelProperty(value = "评分卡结等级")
	private String tmpResult;

	/**
	 * 评级打分卡code
	 */
	@ApiModelProperty(value = "评级打分卡code")
	private String relateCode;

	/**
	 * 评级打分卡name
	 */
	@ApiModelProperty(value = "评级打分卡name")
	private String relateName;

	/**
	 * 利率 （保留2位小数，单位万分之一，年利率除以360，月利率除以30）
	 */
	@ApiModelProperty(value = "利率")
	private Map<String, BigDecimal> dayRates;

	/**
	 * 拒绝原因来源
	 */
	@ApiModelProperty(value = "拒绝原因来源")
	private List<String> dataFroms;

	/**
	 * 拒绝原因(展示给客户经理)
	 */
	@ApiModelProperty(value = "拒绝原因(展示给客户经理)")
	private List<String> refuseReason;



	public static String parse2Str(Map<String, List<String>> map) {
		StringBuilder str = new StringBuilder();
		if (null == map || map.isEmpty()) {
			return null;
		}
		for (String s : map.keySet()) {
			List<String> list = map.get(s);
			for (String s1 : list) {
				str.append(s1);
			}
		}
		return str.toString();
	}

}
